matlab关于colorbar的整理(绘制不等间距colorbar, colorbar的大小位置调节, colorbar加单位等)

您所在的位置:网站首页 matplotlib colorbar设置想要的范围 matlab关于colorbar的整理(绘制不等间距colorbar, colorbar的大小位置调节, colorbar加单位等)

matlab关于colorbar的整理(绘制不等间距colorbar, colorbar的大小位置调节, colorbar加单位等)

2023-07-01 22:35| 来源: 网络整理| 查看: 265

matlab关于colorbar的整理(绘制不等间距colorbar, colorbar的大小位置调节等 1. 绘制不等间距colorbar2. colorbar的大小位置调节3. 更改colorbar上的刻度、给colorbar加单位 对matlab关于colorbar的一些小细节进行整理,希望对一些人能够有所帮助~

1. 绘制不等间距colorbar

本人常用的方法是将某一区间内的数值全都换成同一个数字,最后绘制替换后的数字。

(1) 将某一区间的数值换成同一个数字(本人习惯写一个函数),要注意转换后的数字与转换前的不要有重合,否则会把转换前后数字弄混。

function [R] = Model_to20_unequal_compare(vari,level) %此函数进行不等间距前的变量转换 % vari是要转换的变量,level是目标的不等间距,R是转换后的变量 R = vari; R(find(vari=0.1&vari=0.28&vari=0.46&vari=0.64&vari=0.82&vari=1&vari=1.8&vari=2.6&vari=3.4&vari=4.2&vari=5&vari=6&vari=7&vari=8&vari=9&vari=10&vari=11&vari=12&vari=13&vari=14&vari=15&vari=16&vari=17&vari=18&vari=19&vari=20)) = -70.1; end

(2) 绘制R的填色图,即为不等间距填色图

%------------------------------中国地图------------------------------------- infoL=shapeinfo('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4l.shp');%中国省界线文件(含九段线) infoP=shapeinfo('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4p.shp');%中国面文件 ChinaL=shaperead('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4l.shp'); ChinaP=shaperead('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4p.shp'); bou2_4lx=[ChinaL(:).X];bou2_4ly=[ChinaL(:).Y]; bou2_4px=[ChinaP(:).X];bou2_4py=[ChinaP(:).Y]; World = shaperead('E:\4.Matlab\shp\world map china line\world map china line.shp'); wx = [World(:).X]; wy = [World(:).Y]; figure(1) subplot(1,2,1) m_proj('miller','lon',[70,135],'lat',[15,55]); m_pcolor(lon,lat,R);%绘制的是转换后的R hold on shading flat; %中国国界线省界线 m_plot(bou2_4lx,bou2_4ly,'k','linewidth',1.5);m_plot(wx,wy,'linewidth',1.5,'color',[0.4 0.4 0.4]); colormap(CM_bl2ye2re28(1:end-1,:));%自定义的colormap %!!!这里的caxis一定要注意,是转换后的max和min caxis([-205 -70]); m_grid('linestyle','none'); title('BCC-ESM1_DUSTmean2000-2014','fontsize',15,'interpreter','none'); %%修改位置 NN=1; H(NN) = subplot(1,2,NN);%第NN张子图 POS = get(H(NN),'pos');%第NN张子图的当前位置 POS = POS + [-0.04 -0.037 0.06 0.06]; set(H(NN),'pos',POS)%根据新的边界设置

(3) 修改colorbar的刻度

%自定义colorbar的刻度 level1 = {'0','0.1',' ',' ',' ',' ','1.0',' ',' ',' ',' ','5.0',' ',' ',' ',' ','10.0',' ',' ',' ',' ','15.0',' ',' ',' ',' ','20.0',' '}; axes('position',[.16,.09,.68,.55]); axis off hh = colorbar('horiz');hh.Ticks = [-205:5:-70];hh.TickLabels = level1;caxis([-205 -70]); set(get(hh,'title'),'string','\mug/m^{3}','position',[810 -12]);

在这里插入图片描述 以上就是我熟悉并且我经常用的绘制不等间距colorbar的方法,如果其他小伙伴有更好的方法,欢迎一起讨论交流~

2. colorbar的大小位置调节

(1) 绘制横着的colorbar

hh = colorbar('horiz');

(2) 调节colorbar的大小和位置

hh = colorbar;hh.Ticks = [0:4:64];hh.TickLabels = level1;caxis([0 64]); %调整colorbar的位置(0.16对应左下角的x起点,-0.026对应y起点,0.007对应增加的x长度,0.52对应增加的y长度) %0.16和-0.026是对colorbar位置进行调整,0.007和0.52是对colorbar的长宽进行调整 POS = get(hh,'pos');POS = POS + [0.16 -0.026 0.007 0.52];set(hh,'pos',POS) set(get(hh,'title'),'string','\mug/m^{3}'); 3. 更改colorbar上的刻度、给colorbar加单位

(1) 更改colorbar上的刻度

%0-64是进行不等间距转换后的数值 %level1是自定义的colorbar刻度 hh = colorbar;hh.Ticks = [0:4:64];hh.TickLabels = level1;caxis([0 64]);

(2) 给colorbar加单位

hh = colorbar; set(get(hh,'title'),'string','\mug/m^{3}');


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3